The Internet of Things (IoT) is the network of physical objects—devices, vehicles, buildings and other items—embedded with electronics, software, sensors, and/or network connectivity that enables these objects to collect and exchange data. The IoT allows devices to collect information from sensors and to be controlled remotely across existing network infrastructure, creating opportunities for more direct integration of the physical world into computer-based systems, and resulting in improved efficiency, accuracy and economic benefit. The promise of the IoT is to make everyday products smarter for consumers, and for businesses to enable better, data-driven offerings that were not possible before.
IoT devices may use publish-subscribe technologies to exchange data. In computer-related technologies, a publish-subscribe system is typically a messaging model or messaging configuration where senders of messages, called publishers, send messages or publications to topics or message queues to be consumed by receivers, called subscribers. A publish-subscribe system may be a system where messages are published by publishers into classes or topics without knowledge of which subscribers, if any, there may be to receive the message(s). Subscribers may receive messages through an intermediate broker that performs subscription matching based on a subscription to a topic from the subscriber. Subscriptions may specify topics of interest, sources of messages of interest, types of messages, or content of interest, etc. A “topic” may be a character string that describes the nature of the data that is published in a publish/subscribe system. The broker matches the topic with a list of subscribers who have subscribed to that topic and delivers the message to each of those subscribers.
With the accelerating adoption of networked service provider environments (e.g., “cloud” computing) around the world, organizations are increasingly seeking ways to manage large amounts of data which may be produced by IoT devices and may be published as messages to subscriber devices.